<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>自定义构造函数模式</title>
</head>
<body>
<!-- 
    方式五： 构造函数 + 原型的组合模式
        套路： 自定义构造函数，属性在函数中初始化，方法添加到原型上
        适用场景： 自定义构造函数，属性在函数中初始化，方法添加到原型上
 -->

<script type="text/javascript">
    function Person(name,age){
        this.name = name
        this.age = age
    }
    // 将方法写到原型上，解决每创建一个实例对象，就会创建一个新的方法，减少资源浪费
    Person.prototype.setName = function(name){
        this.name = name
    }
    // 创建实例对象
    var p1 = new Person('theshy',22)
    var p2 = new Person('xiaohu',20)
    // 使用原型的方法，修改 name 属性
    p1.setName('faker')
    p2.setName('uzi')

    console.log(p1,p2)
    console.log(p1.name,p1.age)
    console.log(p2.name,p2.age)
</script>
</body>
</html>